Emu(lator) + (Ar)duino
Processing と Arduino の違いについて
Emuduino(Processing)で作成したプログラムを実機であるArduinoで動作させるには,注意が必要です。一見,両者のプログラムは,よく似ています。しかし,そもそもEmuduino(Processing)は,Javaがベース,ArduinoはC言語がベースなので,その仕様の違いがバグの原因となります。
Emuduinoの開発中に気になった点や注意すべき内容をここにまとめました。
型の違いについて
- Processingには,unsigned型が存在しない。
- Processingには,byte, word型が存在しない。
- Arduinoのcharは8bit, Processingのcharは16bit
- Arduinoのintは16bit, Processingのintは32bit
Arduino | Processing | |||
---|---|---|---|---|
名前 | 値の範囲 | 名前 | 値の範囲 | |
boolean | 真trueか偽 false | 同等 | boolean | 真trueか偽 false |
char | -128 .. 127 | 相違あり | char | char is two bytes (16 bits) |
unsigned char | 0 .. 255 | 該当なし | ||
byte | 0 .. 255 | 該当なし | ||
int | -32768 .. 32767 | 相違あり | int | -2,147,483,648 .. 2,147,483,647 |
unsigned int | 0 .. 65535 | 該当なし | ||
word | 0 .. 65535 | 該当なし | ||
long | -2,147,483,648 .. 2,147,483,647 | 同等 | long | -2,147,483,648 .. 2,147,483,647 |
unsigned long | 0 .. 4294967295 | 該当なし | ||
float | -3.4028235E+38 .. 3.4028235E+38 | 同等 | float | -3.40282347E+38 .. 3.40282347E+38 |
double | -3.4028235E+38 .. 3.4028235E+38 | 同等 | double | -3.40282347E+38 .. 3.40282347E+38 |
該当なし | String | 日本語を含むあらゆる文字 |
構文上の注意点
Arduinoで使用される#define文は,Processingには存在しない。int 型の定数として宣言すること。
配列の宣言方法の違い
配列の初期化方法の違い
Arduino | Processing | |
---|---|---|
int array1[] = { 1, 2, 3 }; | OK | OK |
int[] array2 = { 1, 2, 3 }; | NG | OK |